/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.emp.solbrillante.sales.dao;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

import pe.emp.solbrillante.sales.bean.Paquete;
import pe.emp.solbrillante.sales.bean.PaqueteCompra;
/**
 *
 * @author Ronald
 */
public class MySQLPaqueteDAO implements PaqueteDAO{
         //coneccion ala base de datos
      String connectionUrl = "jdbc:mysql://localhost/prueba_entidadr?" +
                                   "user=adminsamaydev&password=123456";
      
    
     public ArrayList<Paquete> queryPaquetesxProveedor(int idproveedor){
            ArrayList <Paquete> paquetexprovList = new ArrayList<Paquete>();
            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;            
            String calling;
            
            try {
            //1. Se registra el driver de la BD
      
            Driver myDriver = new com.mysql.jdbc.Driver();
            
            //2. Se abre la conexión     

            conn = DriverManager.getConnection(connectionUrl);
            
            //3. Se ejecuta la sentencia SQL
            calling = "{call prueba_entidadr.sp_get_paquetesxproveedor(" +idproveedor +")}"; ;
            
            pstmt = conn.prepareStatement(calling);
            
            
            rs =  pstmt.executeQuery();
            
            //4. Se evalúan los resultados
            while (rs.next()){
                int id = rs.getInt("codigo");
                int cantidad = rs.getInt("Cantidad");
                                               
                Paquete paquete= new Paquete();                
                paquete.setId(id);
                paquete.setCantidad_actual(cantidad);            
                paquetexprovList.add(paquete);
                
            }            
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
             //5. Se cierra la conexión
             try {if (rs != null) rs.close(); } 
             catch(Exception e){e.printStackTrace();}  
        } 

            return paquetexprovList;

    }

    @Override
    public ArrayList<PaqueteCompra> queryPaquetesxProveedorS(int idprov) {
            ArrayList <PaqueteCompra> paquetexprovListS = new ArrayList<PaqueteCompra>();
            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;            
            String calling;
            
            try {
            //1. Se registra el driver de la BD
      
            Driver myDriver = new com.mysql.jdbc.Driver();
            
            //2. Se abre la conexión     

            conn = DriverManager.getConnection(connectionUrl);
            
            //3. Se ejecuta la sentencia SQL
            calling = "{call prueba_entidadr.sp_get_paquetesxproveedor(" +idprov +")}"; 
            
            pstmt = conn.prepareStatement(calling);
                       
            rs =  pstmt.executeQuery();
            
            //4. Se evalúan los resultados
            while (rs.next()){             
                
                PaqueteCompra paquetecompra= new PaqueteCompra();                
                
                paquetecompra.setCodigo(rs.getInt("codigo"));
                paquetecompra.setNom_prov(rs.getString("nom_prov"));
                paquetecompra.setNom_prd(rs.getString("nom_prd"));
                paquetecompra.setDetalle_prod(rs.getString("detalle_prod"));
                paquetecompra.setUnixpaquete(rs.getInt("unixpaquete"));
                paquetecompra.setPrecioxpaquete(rs.getFloat("precioxpaquete"));
                paquetecompra.setStock_minimo(rs.getInt("stock_min")); // add
                paquetecompra.setStock_maximo(rs.getInt("stock_max")); // add
                //paquetecompra.setCantidad(rs.getInt("Cantidad")); // del
                paquetecompra.setCantidad(rs.getInt("cantidad_actual")); // add
                
                paquetexprovListS.add(paquetecompra);
                
            }            
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
             //5. Se cierra la conexión
             try {if (rs != null) rs.close(); } 
             catch(Exception e){e.printStackTrace();}  
        } 

            return paquetexprovListS;
    }

    @Override
    public int queryInsertaCompraPaquete(int cod, int can) {
        
            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;            
            String calling;
            
        try {
            //1. Se registra el driver de la BD
      
            Driver myDriver = new com.mysql.jdbc.Driver();
            
            //2. Se abre la conexión     

            conn = DriverManager.getConnection(connectionUrl);
            
            //3. Se ejecuta la sentencia SQL
            calling = "{call prueba_entidadr.sp_set_compra_paquete("+cod+","+can+")}";
            
            pstmt = conn.prepareStatement(calling);            
            
            rs =  pstmt.executeQuery();
            
            //4. Se evalúan los resultados
            
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
             //5. Se cierra la conexión
             try {if (rs != null) rs.close(); } 
             catch(Exception e){e.printStackTrace();}  
        } 

            return 1;
    }
    
}
